約 1,823,907 件
https://w.atwiki.jp/fumokmm/pages/12.html
package framework; import java.util.LinkedHashMap;import java.util.Map; import org.eclipse.swt.widgets.Composite; import framework.control.GButton;import framework.control.GControl;import framework.control.GLabel;import framework.exception.NonParentExistsException; public class ControlBuilder{private Map String, GControl manager;private Composite baseComp; public ControlBuilder(Composite baseComp){this.manager = new LinkedHashMap String, GControl ();this.baseComp = baseComp;} public void createLabel(String name, String value) throws NonParentExistsException{GLabel l = new GLabel(name, value);manager.put(l.getName(), l);}public void createButton(String name, String value){GButton b = new GButton(name, value);manager.put(b.getName(), b);}public void create(){//for(Control)}}
https://w.atwiki.jp/kapper1224/pages/95.html
Linuxでも昔のまうじゃん for Javaが動作します。 本家サイトからJava版のZIPファイルをダウンロードして展開 sudo apt default-jre mkdir mujin cd mujin wget http //www.amy.hi-ho.ne.jp/ishihata/maujong/java/mujnj_0.9.1.7.zip unzip mujnj_0.9.1.7.zip java -jar Maujong.jar で動作します。 ZIPを展開する時はサブフォルダを作成した方が良いかもしれません。 2007年製のアプリですがJavaはずっと動きそうです。
https://w.atwiki.jp/programmerassistant/pages/27.html
import java.io.*; /* class Saikoro{ //サイコロの目 int me; //サイコロの目を振る void drop(){ this.me = (int)(Math.random() * 6 + 1); */ public class ChoHan { public static void main(String args[]){ BufferedReader myReader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("サイコロゲームを開始します。"); System.out.println("2つのサイコロを投げます。"); //サイコロを2回振り、合計も出します。 int int1 = (int)(Math.random() * 6 + 1); int int2 = (int)(Math.random() * 6 + 1); int int3 = int1 + int2; //入力を促します System.out.println("サイコロの目を当ててください。"); System.out.println("(丁のときは【1】、半のときは【2】を押す。"); //入力する場所 System.out.print("丁?半?> " ); String myS = myReader.readLine(); //サイコロの目を表示 int myA = Integer.parseInt(myS); System.out.println("サイコロ1の目 " + int1); System.out.println("サイコロ2の目 " + int2); //半丁の結果 if (int3 % 2 == 0) { System.out.println("結果は丁でした。"); }else { System.out.println("結果は半でした。"); } //結果に対してのコメント if ((myA ==1 int3 % 2 == 0)||(myA ==2 int3 % 2 == 1)){ System.out.println("大当たり!!"); }else if ((myA == 2 int3 % 2 == 0)||(myA ==1 int3 % 2 == 0)){ System.out.println("残念!はずれました。"); } }catch (IOException e){ System.out.println("エラーが発生しました。!"); }catch (NumberFormatException ne) { System.out.println("入力された数値が正しくないようです。"); } } }
https://w.atwiki.jp/sfrontier/pages/84.html
Java 作成日 2007/11/08 H.Naito 更新日 2007/11/08 H.Naito JDBC を利用して Oracle に接続したい JDBC を利用して Oracle に接続したい ここでは、テーブル一覧を取得し、HTML で表示するモジュールのサンプルを紹介する import java.sql.*; public class JDBC_Test { public static void main ( String[] args ) { Connection con = null; Statement smt = null; ResultSet rst = null; // Oracle JDBC Driver のロード try { Class.forName( "oracle.jdbc.driver.OracleDriver" ); } catch ( ClassNotFoundException ce ) { return; } /* データベースへの接続 */ try { con = DriverManager.getConnection( "jdbc oracle thin @HOSTNAME PORT_NUMBER ORA_SID", "USR_ID", "PASSWORD" ); // ステートメントを作成 smt = con.createStatement(); // 問合せの実行 rst = smt.executeQuery( "select * from tab" ); // 問合せの結果表示 System.out.println( " html " ); System.out.println( " body " ); System.out.println( " table border = \" " + "\"5\" " ); System.out.println( " tr td TNAME /td td TABTYPE /td td CLUSTERID /td /tr " ); while ( rst.next() ) { // 行番号による指定 System.out.println( " tr " ); System.out.println( " td " + rst.getString( "TNAME" ) + " /td td + rst.getString( "TABTYPE" ) + " /td td + rst.getString( "CLUSTERID" ) + " /td " ); System.out.println( " /tr " ); } System.out.println( " /table " ); System.out.println( " /body " ); System.out.println( " /html " ); // 結果セットをクローズ rst.close(); // ステートメントをクローズ smt.close(); // 接続をクローズ con.close(); } catch ( Exception e ) { e.printStackTrace(); } } }
https://w.atwiki.jp/suffix/pages/101.html
System.outとSystem.errの違い toStringメソッドについて Javaのビット表現 プリミティブ型とラッパークラス 型変換(キャスト) キーワード解説 Java可変長引数 Javaジェネリックス Java版Foreach Javaパッケージ 役割別クラス・メソッド解説(適宜編集項目) 配列 動的配列の使い方 連想配列の使い方 配列要素へのアクセス コレクションについて
https://w.atwiki.jp/yo-kichi/pages/137.html
今回の目標 スレッドを理解させる 役割り分担, 内容 スレッドの説明 スレッドを使ったプログラムの実習 検討中 どれかやる abstract オーバーライド オーバーロード コンストラクタチェーン(コンストラクタからコンストラクタ呼ぶ) コレクション thread interface ←まだやらない 準備 宿題 問題と答え 反省 前回の質問 なぜjavaは多重継承を実装しなかったのか javaのjreとかってオープンソースなの? 継承したクラスってメモリ上でどうなってるの? その他 そろそろJavaオープンソースに参戦する? ニコ生進出?
https://w.atwiki.jp/cappu/pages/2.html
メニュー EclipseEclipse Java 開発 Tips swt JFace draw2d Editor EMF GMF Eclipse Galileo Eclipse Ganymede Android Scala Processing LWJGL Google App Engine Protocol Buffers Game JRuby 字句解析JavaCC antlr ベクトル その他
https://w.atwiki.jp/ittec/pages/15.html
トラブル事象と対処方法 複数のスレッドからDateFormatを実行した場合に日付が不正な値になる 技術、方式等 Listに特定の値が存在するかを高速に確認する フレームワーク向け リフレクションを利用したロギング アノテーションと動的Profileによる入力チェック(予定)
https://w.atwiki.jp/cappu/pages/58.html
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.nio.ByteBuffer; public class ClientServerSocketSample { private final static int port = 50000; static class SimpleServerSession implements Runnable { private Socket socket; public SimpleServerSession(Socket socket) { this.socket = socket; } @Override public void run() { try { BufferedInputStream input = new BufferedInputStream(socket .getInputStream()); BufferedOutputStream output = new BufferedOutputStream(socket .getOutputStream()); while (true) { // インプットストリームからバイトを取得 byte[] readByte = new byte[1024]; int streamSize = -1; RecievedData data = new RecievedData(); while ((streamSize = input.read(readByte)) != -1) { ByteBuffer re = ByteBuffer.wrap(new byte[streamSize]); re.put(readByte, 0, streamSize); data.putByte(re.array()); if (data.isCompleted()) { break; } } ByteBuffer bytebuf = ByteBuffer.wrap(new byte[data .getSize()]); bytebuf.putInt(data.getDataSize()); bytebuf.put(data.getData().array()); output.write(bytebuf.array()); output.flush(); } } catch (Exception e) { if (socket != null) { try { socket.close(); } catch (IOException e1) { e1.printStackTrace(); } } } } } public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { try { ServerSocket server = new ServerSocket(port); while (true) { Socket soket = server.accept(); new Thread(new SimpleServerSession(soket)).start(); System.out.println("accept soket " + soket); } } catch (IOException e) { e.printStackTrace(); } System.out.println("end"); } }).start(); Socket socket = new Socket(); try { socket.connect(new InetSocketAddress(port)); BufferedOutputStream out = new BufferedOutputStream(socket .getOutputStream()); BufferedInputStream input = new BufferedInputStream(socket .getInputStream()); for (int i = 0; i 10000; i++) { // 送信 String sendString = "sample 日本語"; byte[] senddata = sendString.getBytes(); ByteBuffer bufData = ByteBuffer.allocate(4 + senddata.length); bufData.putInt(senddata.length); bufData.put(senddata); out.write(bufData.array()); out.flush(); // 受信 // インプットストリームからバイトを取得 byte[] readByte = new byte[1024]; int streamSize = -1; RecievedData data = new RecievedData(); while ((streamSize = input.read(readByte)) != -1) { ByteBuffer re = ByteBuffer.wrap(new byte[streamSize]); re.put(readByte, 0, streamSize); data.putByte(re.array()); if (data.isCompleted()) { break; } } String recieve = new String(data.getData().array()); if (recieve.equals(sendString)) { } else { System.err.println("errror"); } } System.out.println("終了"); } catch (IOException e) { e.printStackTrace(); } } } class RecievedData { private RecievedState state; private RecievedState sizeData; private RecievedState messageData; private boolean completed; public RecievedData() { sizeData = new RecievedState(this, 4); state = sizeData; } public void putByte(byte[] data) { state.putByte(data); } void full(RecievedState recievedState, ByteBuffer fullData, ByteBuffer restData) { if (recievedState == sizeData) { fullData.position(0); messageData = new RecievedState(this, fullData.getInt()); state = messageData; if (restData != null) { putByte(restData.array()); } } else if (recievedState == messageData) { if (restData != null) { throw new RuntimeException("データサイズが不一致です"); } completed = true; } } public ByteBuffer getData() { if (messageData != null) { return messageData.getData(); } return null; } public boolean isCompleted() { return completed; } public int getSize() { if (messageData != null) { return sizeData.getSize() + messageData.getSize(); } return sizeData.getSize(); } public int getDataSize() { if (messageData != null) { return messageData.getSize(); } return sizeData.getSize(); } private class RecievedState { private int size; public int getSize() { return size; } private RecievedData recievedData; private ByteBuffer buf; private boolean full; public RecievedState(RecievedData recievedData, int size) { this.size = size; buf = ByteBuffer.wrap(new byte[size]); this.recievedData = recievedData; } public void putByte(byte[] data) { if (full) { throw new RuntimeException("これ以上書きこむことはできません"); } int rest = size - buf.position(); if (rest == data.length) { buf.put(data, 0, data.length); recievedData.full(this, buf, null); full = true; } else if (rest data.length) { buf.put(data, 0, data.length); } else { buf.put(data, 0, rest); ByteBuffer restBuf = ByteBuffer.wrap(new byte[data.length - rest]); restBuf.put(data, rest, data.length - rest); recievedData.full(this, buf, restBuf); full = true; } } public ByteBuffer getData() { return buf; } } }
https://w.atwiki.jp/shuei/pages/240.html
JSP JSPページ マークアップの合間に、動的なコンテンツを作成するためのロジックを表す特殊なJSP要素が含まれる サーブレットに比べて、読みやすく?保守しやすく?単純である?ことから好まれる? 実際にはサーブレットテクノロジの拡張機能であり、JSPページは「JSP実装クラス」と呼ばれるJavaサーブレットに変換される(JSPエンジン) JSPエンジンは、JSP実装クラスが存在しない、或いはJSPページより古い場合に起動する JSPページ内で定義されているマークアップを出力するJavaコードと、ユーザーリクエストを処理する全てのコードを含む _jspService()メソッドが含まれる Javaソースコードへの変換中にJSPページに不完全なJSP構成要素が含まれる場合、サーバーよりParseExceptionが返される コンパイル中にスクリプトレットでの構文エラーが発生すると、サーバよりJasperExceptionが返される その場合実装クラス名とエラーのスタック情報が表示される JSPのライフサイクル JSP実装クラスのインスタンスが存在しない場合、JSPコンテナはクラスの読込み・クラスのインスタンス化・jspInit()にて初期化処理が行われる _jspService()メソッドを呼び出し、リクエストとレスポンスを渡してサービス処理を行う JSP実装クラスの消滅により jspDestroy()にて消滅処理が行われる 指令(jsp directive) 重要な情報をJSPエンジンに渡すために使われる 出力は生成しない include指令以外は、JSPページの先頭に記述しなければならない <%@ 指令 {属性=”値”}* %> page指令 <%@ page [ language="スクリプト言語" ] [ extends="パッケージ名.クラス名" ] [ import="インポートするパッケージ名" ] [ session="true | false" ] [ buffer="none | (size)kb" ] [ autoFlush="true | false" ] [ isThreadSafe="true | false" ] [ info="版権など" ] [ errorPage="対応しない例外が発生した場合のエラーページ" ] [ isErrorPage="true | false" ] [ contentType="MIMEタイプ" ] [ pageEncoding="peinfo" ] %> errorPageは、JSPファイルのはじめに入れるべき taglib指令 <%@ taglib uri="タグライブラリ" prefix="プレフィックス" %> taglibで登録したカスタムタグを使用できるようになる 宣言(jsp declaration) JSPページ全体でのフィールド・メソッドを定義する Java言語の予約語や暗黙的オブジェクト名をつけることはできない <%! [宣言;]+ %> スクリプトレット(jsp scriptlet) マークアップの間に記述されるコードの断片 将来のJSP仕様ではJava以外の言語も記述できるようになるかもしれない <% コード %> 式(jsp expression) String型かString型に変換できる肩でなければならない <%= 式 %> アクション(jsp ****) <jsp include page="url" flush="true | false" /> JSPページなどほかのファイルを動的にインクルードする <jsp forward page="url" /> 別のJSPやサーブレットにフォアードし、呼出元のJSPページは処理を終了する <jsp plugin type="bean | applet" code="パッケージ名.クラス名" codebase="コードベース" [ align=/archive=/height=/hspace=/jreversion=/name=/vspace=/width=/nspluginurl=/iepluginurl= ] /> JavaアプレットまたはJavaBeansコンポーネントを組み込むことができ、ブラウザに適した<object>タグまたは<embed>タグを生成する <jsp params>を含む場合は、内部にjsp paramを列挙できる <jsp fallback>を含む場合は、pluginが起動できない場合の代替コンテンツを指定できる コンテンツが見つからない場合はClassNotFoundExceptionとなる <jsp param name="name" value="value" /> jsp include/forward/plugin と組み合わせて使用する <jsp useBean id="参照名" [scope="page | request | session | application"] typeSpec /> ボディをもつ場合、<jsp setProperty>または、<%。。%>を含むことができる typeSpecでは、クラス名 | タイプ名 | クラス名+タイプ名 | ビーン名+タイプ名 の組み合わせが許される タイプ名としては、クラス名だけでなくスーパークラスや実装されたインターフェース名でも良い <jsp setProperty name="ビーン名" property="プロパティ名" value="<%=XX%>" />では、ビーンのsetterを呼ぶ <jsp getProperty name="ビーン名" property="プロパティ名" />は、getterを呼ぶがString型として出力される JavaBeans パッケージ化されたpublic指定のシリアライズ可能クラスであり、publicの引数のないコンストラクタとsetter・getterのみをもつ コメント 出力コメントは、レスポンスにて返される <!−− コメント −−> JSP式を含めても良い JSPコメントは、レスポンスにて返されない <%−− コメント −−%> <% /*コメント*/ %>と同義 暗黙的オブジェクト request=HttpServletRequest / response=HttpServletResponse / out=JspWriter / session=HttpSession / config=ServletConfig / application=ServletContext / page=Object(JSP実装クラス) / pageContext=Object(より抽象化された実装クラス) / exception=Throwable(エラーページの場合) カスタムタグ カスタムタグ JSP標準で使用できるアクションとは別に、タグライブラリを参照することによりカスタムアクションを実行するためのタグ カスタムタグの準備 タグハンドラの作成 → TLDファイルの作成 → web.xmlへのTLDファイルの登録 → JSPページ内にtaglib指令を記述 → カスタムタグをJSPページ内に記述 コンパイルは逆順で行われる web.xml内<taglib>タグにて、taglib-uri/taglib-locationを指定する taglib-locationは、TLDファイル(Tag Library Descripter)のコンテキストルートからのパスを指定する /WEB-INF以下の任意のディレクトリに配置するのが望ましい TLDファイル URI・タグ名とそれを処理するタグハンドラクラス・属性がまとめられている <taglib>がルートノードであり、tlib-version/jsp-version/short-name/tagを指定する taglibタグ内<tag>タグは最低2つの要素が必要であり、name/tag-class/body-content/attributeを指定する tagタグ内<body-content>タグには、empty/JSP/tagdependent(本文をもっても動的解釈されない)の3種の文字列を指定する tagタグ内<attribute>タグには、name/required/rtexprvalueを指定し属性の設定を行う rtexprvalueをtrueで指定しないとJSP式を解釈しない タグハンドラクラス カスタムタグに関連付けられた実際のタグ処理を行うクラスファイル /WEB-INF以下classesかlibに配置する javax.servlet.jsp.tagext.Tagインターフェース(doStartTag()/doEndTag())やIterationTagインターフェース(+doAfterBody())が大本であるが、本文をもつタグのためにはBodyTagインターフェース(+doInitBody()/setBodyContent())が使用される 実際には、IterationTagインターフェースを実装したTagSupportクラスとBodyTagインターフェースを実装したBodyTagSupportクラスのどちらかを継承してタグハンドラクラスを作成する TagSupportクラス javax.servlet.jsp.tagext.TagSupportクラスを継承してタグを作成すると、本文をもたないタグや本文を解釈する必要のないタグを作成できる doStartTag()の返り値として、SKIP_BODYまたはEVAL_BODY_INCLUDEを指定する EVAL_BODY_INCLUDEでは本文の評価・表示を行う doEndTag()の返り値として、SKIP_PAGEまたはEVAL_PAGEを指定する SKIP_PAGEを指定するとタグより後の部分を評価しない タグ属性値の扱いは、タグクラスのsetter/getterを作成する doAfterBody()では、EVAL_BODY_AGAINかSKIP_BODYを指定でき、本文部分が再評価される body-contentがJSPであれば、TagSupport.getParent()メソッドで上位タグハンドラクラスの参照を取得できる 下位の参照は取得できないがsetValue/getValueによりObject型の値を相互参照できる 同様にbody-contentがJSPであれば、findAncestorWithClass()メソッドでは、同JSPページに限定して上位タグを取得する getParent()ではさらに外部のJSPページを参照する可能性がある BodyTagSupportクラス TagSupportを継承したクラス doStartTag()の返り値として、EVAL_BODY_BUFFEREDが指定できるようになる この場合、本文の評価のみで表示は行わずにsetBodyContent()/doInitBody()に委ねる メンバ変数bodyContentを利用または、setBodyContent(BodyContent bc)をオーバーライドすると、BodyContentオブジェクトを利用できる clearBody()メソッドでbodyContentをクリアできる doInitBody()は、本文部分が評価される前に呼び出されるメソッドである PageContextクラス タグハンドラクラスにjavax.servlet.jsp.PageContextクラスを利用するためには、TagSupportクラスのメンバ変数であるpageContextを利用するか、setPageContext(PageContext pc)をオーバーライドする pageContext.getOut()により、JspWriterオブジェクトを取得でき、JSPページへの出力を行うことができる pageContext.getAttribute(name, scope)またはpageContext.findAttribute(name)を利用することで、JSPページからJavaBeansを受け取ることができる scopeは4つのスコープ全てが有効 pageContext.getRequest()/getSession()/getServletContext()メソッドにて、それぞれのスコープでのコンテキストを取得できる JSTL JSP Standard Tag Libraryは、一般的に使用される標準的な処理をまとめたタグライブラリであり、core/I18N/sql/xmlがある